package com.ellwood.IPGuard.infrastruction.domain.vo.system.user;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ellwood.IPGuard.common.core.excel.LocalDateTimeConverter;
import com.ellwood.IPGuard.common.core.utils.EllDateUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * @ProjectName: IPGuard-boot
 * @PackageName: com.ellwood.IPGuard.infrastruction.domain.vo.system.user
 * @ClassName: UmsSysUserExcelVO
 * @Description: // excel 用户vo
 * @Author: Ellwood
 * @CreateDate: 2024/10/11 - 下午3:09
 * @Version: V1.0.0
 */
@Data
public class UmsSysUserExcelVO implements Serializable, TransPojo {
        
        @Serial
        private static final long serialVersionUID = 1L;
        
        /**
         * 本属性对于导出无用，只用于翻译
         */
       @ExcelIgnore
        private Long id;

        @ExcelProperty( "用户账号")
        private String username;

        @ExcelProperty( "用户昵称")
        private String nickname;
    
        @ExcelProperty( "用户邮箱")
        private String email;

        @ExcelProperty( "手机号码")
        private String mobile;
        
        @ExcelProperty("性别")
        private String sex;
        
        /*@ExcelIgnore
        @Trans(type = TransType.DICTIONARY, key = "user_sex", ref = "sexLabel")
        private Integer sex;

        @ExcelProperty(value = "性别")
        private String sexLabel;*/

        @ExcelProperty("头像地址")
        private String avatar;
 
        @ExcelProperty( "备注")
        private String remark;
        
        @ExcelProperty(value = "创建时间",converter = LocalDateTimeConverter.class)
        private LocalDateTime createTime;
       
}
